var Node = function Node() {
    //如果不能new  要抛出一个错误
    throw new TypeError("Illegal constructor");
}//构造函数
catvm.safefunction(Node); //tostring 保护
//设置原型链上显示的名字***************************************************************************
Object.defineProperties(Node.prototype, {
    [Symbol.toStringTag]: {
        value: "Node",
        configurable: true
    }
});

// 原型指向原型父亲***************************************************************************
Node.prototype.__proto__ = EventTarget.prototype

//该环境下的属性和方法***************************************************************************
Node.prototype.appendChild = function appendChild(e) {
    catvm.debugger_()
    this.innerHTML = e
    this.son = e
    e.father = this

};
Node.prototype.removeChild = function removeChild(e) {
    catvm.debugger_()
    debugger;
    for (let i = 0; i < catvm.domele.length; i++) {
        if (e.__proto__ === catvm.domele[i].__proto__ && e.catvm_index === catvm.domele[i].catvm_index) {
            catvm.domele.splice(i, 1);
        }
    }
};
catvm.safefunction(Node.prototype.appendChild)

Node.prototype.firstChild = {} // 纯净 5s
// 对于Node.prototype原型无法调用，但是Node实例却可以调用的属性/方法进行抛出错误的设置***************************************************************************


//代理***************************************************************************
Node = catvm.proxy(Node)

